home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / blit.arc / HILBERT.C < prev    next >
Encoding:
C/C++ Source or Header  |  1985-06-10  |  921 b   |  43 lines

  1. /*
  2.  * NAME:         HILBERT
  3.  *
  4.  * DESCRIPTION: CONTROL ROUTINE FOR DRAWING HILBERT CURVES.
  5.  *
  6.  * SYNOPSIS:     HILBERT (DEPTH, GRID)
  7.  *              INT      DEPTH;
  8.  *              INT      GRID;
  9.  *
  10.  * GLOBALS:      NONE.
  11.  *
  12.  * CALLS:        A  (HILBERT.C)
  13.  *
  14.  * CALLED BY:    TEST  (TEST.C)
  15.  */
  16.  
  17. #INCLUDE "LAYERS.H"
  18.  
  19. STRUCT LAYER  *DRAWP;
  20.  
  21. HILBERT (DEPTH, GRID)
  22. INT    DEPTH;                          /* DRAW HILBERT CURVES OF ORDERS 1 TO
  23.                                          DEPTH */
  24. INT    GRID;                           /* SIZE TO DRAW THEM */
  25. {
  26.    STRUCT POINT     HOME;
  27.    STRUCT POINT     OLD;
  28.    STRUCT POINT     CUR;
  29.    INT      I;
  30.    INT      H;
  31.  
  32.    H = GRID;
  33.    HOME.X = H / 2;
  34.    HOME.Y = H / 2;
  35.    FOR (I = 1; I <= DEPTH; I++) {
  36.        H = H / 2;
  37.        HOME.X += (H / 2);
  38.        HOME.Y += (H / 2);
  39.        CUR = OLD = HOME;
  40.        A (I, H, &OLD, &CUR);
  41.    }
  42. }
  43.